The term report refers to structured information generated from a data source, such as a database. Reporting is a process of accessing, formatting, and delivering data as information inside and outside an organization. Report accessing and formatting techniques are well developed. The current invention is directed toward resolving some of the shortcomings associated with existing report delivery techniques.
Before the advent of the corporate intranet, the principal challenge for enterprise reporting systems was to create useful reports and distribute them effectively. At the time, client based departmental solutions worked acceptably with standard databases in a local area network, but information administrators would encounter problems when legacy systems, distributed networks, different machine types, manual installation, and related issues emerged. The corporate intranet offered the promise of a solution to these complexities, introducing technologies that would make it possible to disseminate reporting information throughout an organization—even to disparate platforms—without the burdensome manual overhead that client-based packages involved.
Early releases of web-based reporting solutions, such as Crystal Enterprise®, sold by Business Objects Americas, Inc., San Jose, Calif., provided functionality to facilitate some forms of enterprise reporting. The corporate intranet provided a vehicle to facilitate the transport of information, but the reporting systems themselves were reliant on back-end servers to orchestrate the presentation and delivery of reports. In the absence of server hardware that could match the exponential growth of client requests in a corporate enterprise, the new challenge became not so much “distributing reports,” but distributing thousands upon thousands of reports to thousands of users. That is, the current challenge is distributing information in a highly scalable environment.
To address the challenge of scalability, Crystal Enterprise was implemented using server cluster technology. The clustering paradigm is simple: a cluster consists of a collection of interconnected servers deployed as a single, unified computing resource. Users of Crystal Enterprise access, for example, a server cluster, rather than a single management server machine within the cluster framework.
Because each member of a server cluster remains, effectively, anonymous and interchangeable from a client's perspective, the methodology creates the illusion of a singular system—presented to the desktop user—while servicing the client needs with the power of distributed processing.
This cluster technology made it possible for Crystal Enterprise to attain very high availability using what is generally termed failover. Failover refers to an architecture in which server machines are coupled together to listen for a “heartbeat” signal, which is broadcast from each machine in the cluster to the others. When a heartbeat ‘stops’, the workload of the failed server is automatically transferred to an operative server.
Advantageously, cluster technology allows for additional machines to be added to a cluster while it continues to perform its operations. This dynamic scaling equips information technology departments with the means to scale to significant levels without disrupting client service. However, existing solutions have limitations. In particular, existing solutions are designed only to satisfy the typical linear scaling model. In addition, the technology is not able to effectively meet the needs of growing enterprises that include geographically dispersed data systems.
In view of the foregoing, it would be highly advantageous to provide improved cluster technology. In particular, it would be highly advantageous to provide an improved cluster technology for the efficient publication of reports.